package main.java.util;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;

/**
 * 文件的相关操作
 * @author gzq
 *
 */
public class FileUtil {
	
	private static List<String> fileList = new ArrayList<String>();//所有的模板文件
	
	/**
	 * 创建目录/文件夹
	 * @param path
	 */
	public static void mkdir(String path) {
		File file = null;
		file = new File(path);
		if(!file.exists()) {
			file.mkdirs();
		}else{
			file = null;
		}
	}
	
	/**
	 * 写文件
	 * @param path
	 * @param content
	 */
	public static void writerOut(String path, String content) {
		File file = new File(path);
		try {
			Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"));
			out.append(content.toString());//添加内容
			out.flush();
			out.close();
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 获取指定目录下的所有文件模板，包括子目录
	 * @param templateFilePath
	 * @return
	 * @throws Exception
	 */
	public static List<String> getFiles(String templateFilePath) throws Exception{
		File file = new File(templateFilePath);
		File[] files = file.listFiles();
		if(files == null ) {
			throw new Exception("此路径下没有文件模板");
		}
		for(File fi : files) {
			if(fi.isDirectory()) { //如果fi是一个目录返回true
				//递归调用，获取子目录的文件模板
				getFiles(fi.getAbsolutePath());
			}else{
				fileList.add(fi.getAbsolutePath());
			}
		}
		return fileList;
	}

}
